/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package nominalitzacions.domain;

import commonlib.domain.Corpus;
import commonlib.domain.Rules;

/**
 *
 * @author marc.mauri
 */
public abstract class LanguageState {

    private Language lang;

    public void setLanguage(Language lang) {
        this.lang = lang;
    }

    public Language getLanguage() {
        return this.lang;
    }

    public abstract NominalizatorDictionary getInfDico() throws UnsupportedOperationException;

    public abstract void setInfDico(NominalizatorDictionary infDico) throws UnsupportedOperationException;

    public abstract NominalizatorDictionary getIrregDico() throws UnsupportedOperationException;

    public abstract void setIrregDico(NominalizatorDictionary irregDico) throws UnsupportedOperationException;

    public abstract NominalizatorDictionary getNameDico() throws UnsupportedOperationException;

    public abstract void setNameDico(NominalizatorDictionary nameDico) throws UnsupportedOperationException;

    public abstract Corpus getCorpus() throws UnsupportedOperationException;

    public abstract void setCorpus(Corpus corpus) throws UnsupportedOperationException;

    public abstract void setRules(Rules rules) throws UnsupportedOperationException;

    public abstract Rules getRules() throws UnsupportedOperationException;
    
    public abstract void switchLanguageOn(NominalizatorDictionary infDico,
                                            NominalizatorDictionary irregDico,
                                            NominalizatorDictionary nounDico,
                                            Corpus corpus, Rules rules);

}

